package com.itheima.d1_char_stream;
import java.io.FileWriter;
import java.io.Writer;

/**
 * 目标：搞清楚字符输出流使用时的注意事项。
 *    字符输出流写出数据后，必须刷新流，或者关闭流，写出去的数据才能生效（关闭流包含刷新）
 *    分析：因为程序在创建文件字符输出流的时候，会在内存中分配一块区域出来，也就是缓冲区，后续write写数据的时候，都是先写到缓冲区中
 *          缓冲区在内存，所以写入速度很快。最后需要通过刷新流或者关闭流的特殊操作，来通知缓冲区的数据调用“一次，只需要调用一次”
 *              系统资源就能写入到文件中，性能就会好很多。
 *                  如果没有对这个流进行刷新和关闭，程序就直接结束了，那么这个缓冲区的数据还么有到文件中程序就挂掉了，那最终就无法写到文件中
 */
public class FileWriterTest3 {
    public static void main(String[] args) throws Exception {
        Writer fw = new FileWriter("Day09Io-App2/src/itheima03out.txt");

        // 写字符数据出去
        fw.write('a');
        fw.write('b');
        fw.write('c');
        fw.write('d');
        fw.write("\r\n");

        fw.write("我爱你中国");
        fw.write("\r\n");
        fw.write("我爱你中国");

        // 刷新流。
        //fw.flush();
        //刷新这个流之后，这个流还可以继续使用的
        //fw.write("张三");
        //但是继续使用这个流之后，还需要再次刷新，否则不生效
        //fw.flush();

        //fw.close(); // 关闭流，关闭流包含刷新操作！
        // fw.write("张三");
    }
}
